Geavanceerde query parameters

@todo waarom in aparte map?

De dynamische API ondersteunt verschillende query parameters om je API-aanroepen te verfijnen en filteren. Deze geavanceerde functies maken het mogelijk om specifieke data op te halen zonder uitgebreide client-side filtering te implementeren.

Basis query parameters

Voor alle collecties kun je de volgende basis query parameters gebruiken:

Parameter Beschrijving Voorbeeld
limit Maximum aantal items om terug te geven /api/products?limit=10
offset Aantal items om over te slaan (voor paginering) /api/products?offset=20
sort Velden waarop gesorteerd moet worden /api/products?sort=price
fields Selecteert specifieke velden om terug te geven /api/products?fields=name,price

Filtering op veldwaarden

Je kunt filteren op specifieke veldwaarden door de veldnaam als query parameter te gebruiken:

/api/products?price=19.99

Dit retourneert alle producten met een prijs van exact 19,99.

Meerdere waarden (OR filtering)

Je kunt filteren op meerdere mogelijke waarden door deze met komma's te scheiden:

/api/products?categoryId=1,2,3

Dit retourneert producten in categorieen 1, 2 OF 3.

Vergelijkingsoperatoren

Voor numerieke en datum velden kun je vergelijkingsoperatoren gebruiken:

Operator Beschrijving Voorbeeld
[gt] Groter dan /api/products?price[gt]=20
[gte] Groter dan of gelijk aan /api/products?price[gte]=20
[lt] Kleiner dan /api/products?price[lt]=50
[lte] Kleiner dan of gelijk aan /api/products?price[lte]=50
[like] Overeenkomt met patroon (tekstvelden) /api/products?name[like]=phone

Voorbeelden van vergelijkingsoperatoren

Prijsbereik filteren

Om producten te vinden met een prijs tussen 20 en 50:

/api/products?price[gte]=20&price[lte]=50

Tekstzoekopdracht

Om producten te vinden met "phone" ergens in de naam (hoofdletterongevoelig):

/api/products?name[like]=phone

Datumfilters

Om bestellingen te vinden na een bepaalde datum:

/api/orders?orderDate[gt]=2024-01-01

Sortering

Je kunt je resultaten sorteren met de sort parameter:

Oplopend sorteren

/api/products?sort=price

Aflopend sorteren (met voorafgaand minteken)

/api/products?sort=-price

Sorteren op meerdere velden

/api/products?sort=categoryId,-price

Dit sorteert eerst op categoryId (oplopend) en daarna op price (aflopend).

Paginering

Voor grote datasets kun je paginering gebruiken met de limit en offset parameters:

/api/products?limit=10&offset=0  // Eerste pagina
/api/products?limit=10&offset=10 // Tweede pagina
/api/products?limit=10&offset=20 // Derde pagina

Complexe zoekvoorbeelden

Producten in een prijsklasse en categorie

/api/products?categoryId=2&price[gte]=10&price[lte]=50&sort=-price

Dit zoekt naar alle producten in categorie 2, met een prijs tussen 10 en 50, gesorteerd op prijs (hoogste eerst).

Recente actieve bestellingen

/api/orders?status=active&orderDate[gt]=2024-01-01&sort=-orderDate

Dit zoekt naar actieve bestellingen geplaatst na 1 januari 2024, gesorteerd op datum (nieuwste eerst).